Теорема о СДНФ
Обозначение эквивалентности через степень
Определение:
Функцию $x \sim y$ иногда удобно записывать как $x^y$ Свойства: $x^1 = x$, $x^0 = \bar{x}$, $1^y = y$, $0^y = \bar{y}$
Теорема о представимости булевой функции в виде СДНФ
Формулировка:
Любая булева функция, не равная константе $0$, задается некоторой СДНФ.
Д-во:
Пусть $f(x_1, \ldots, x_k)$ отлична от константы $0$. Построим СДНФ $F$ по следующему правилу: для каждого битового вектора $\vec{b} = (b_1, \ldots, b_k)$ такого, что $f(b_1, \ldots, b_k) = 1$, поместим в $F$ элементарную конъюнкцию $C_{\vec{b}} = x_1^{b_1} \land \ldots \land x_k^{b_k}$. Построенная формула — СДНФ по определению. Докажем, что $F$ задает $f$. Функция, заданная ДНФ, равна $1 \iff$ одна из элементарных конъюнкций равна $1$. $$f(b_1, \ldots, b_k) = 1 \iff C_{\vec{b}}(b_1, \ldots, b_k) = 1$$ $\square$
Следствие о существовании ДНФ
Формулировка:
Любую булеву функцию можно привести к ДНФ. $$0 = x\bar{x}$$
Замечание о построении ДНФ и СДНФ
Формулировка:
ДНФ и СДНФ можно строить преобразованиями, используя законы дистрибутивности, законы де Моргана и пр. $$x \leftrightarrow y = (x \to y)(y \to x) = (\bar{x} \lor y)(\bar{y} \lor x) = \bar{x}\bar{y} \lor 0 \lor 0 \lor xy = \bar{x}\bar{y} \lor xy$$ $$xy = xy(z \lor \bar{z}) = xyz \lor xy\bar{z}$$ В общем случае ДНФ не единственна.